CodeIgniter এর Query Builder Class ডাটাবেসের সাথে কাজ করার একটি শক্তিশালী এবং সহজ উপায় প্রদান করে। এটি সহজ এবং জটিল উভয় ধরনের কোয়েরি সম্পাদন করতে পারে। JOIN অপারেশন ব্যবহার করে একাধিক টেবিল থেকে ডেটা রিট্রিভ করা যায়।
CodeIgniter এর Query Builder দিয়ে আপনি ডেটাবেসের বিভিন্ন কাজ যেমন সিলেক্ট, ইনসার্ট, আপডেট এবং ডিলিট করতে পারেন। নিচে কয়েকটি উদাহরণ দেওয়া হলো।
$builder = $db->table('users');
$query = $builder->get(); // SELECT * FROM users
$builder = $db->table('users');
$builder->select('name, email');
$query = $builder->get(); // SELECT name, email FROM users
$builder = $db->table('users');
$builder->where('status', 'active');
$query = $builder->get(); // SELECT * FROM users WHERE status = 'active'
$builder = $db->table('users');
$builder->orderBy('created_at', 'DESC')->limit(10);
$query = $builder->get(); // SELECT * FROM users ORDER BY created_at DESC LIMIT 10
JOIN ব্যবহার করে একাধিক টেবিল থেকে ডেটা রিট্রিভ করা হয়।
$builder = $db->table('orders');
$builder->select('orders.id, orders.amount, users.name');
$builder->join('users', 'users.id = orders.user_id');
$query = $builder->get();
জেনারেট করা SQL:
SELECT orders.id, orders.amount, users.name
FROM orders
INNER JOIN users ON users.id = orders.user_id
$builder = $db->table('orders');
$builder->select('orders.id, orders.amount, users.name');
$builder->join('users', 'users.id = orders.user_id', 'left');
$query = $builder->get();
জেনারেট করা SQL:
SELECT orders.id, orders.amount, users.name
FROM orders
LEFT JOIN users ON users.id = orders.user_id
$builder = $db->table('orders');
$builder->select('orders.id, orders.amount, users.name');
$builder->join('users', 'users.id = orders.user_id', 'right');
$query = $builder->get();
জেনারেট করা SQL:
SELECT orders.id, orders.amount, users.name
FROM orders
RIGHT JOIN users ON users.id = orders.user_id
$builder = $db->table('orders');
$builder->select('SUM(amount) as total_sales');
$query = $builder->get();
জেনারেট করা SQL:
SELECT SUM(amount) as total_sales FROM orders
$builder = $db->table('orders');
$builder->select('orders.id, orders.amount, users.name, products.title');
$builder->join('users', 'users.id = orders.user_id');
$builder->join('products', 'products.id = orders.product_id');
$query = $builder->get();
জেনারেট করা SQL:
SELECT orders.id, orders.amount, users.name, products.title
FROM orders
INNER JOIN users ON users.id = orders.user_id
INNER JOIN products ON products.id = orders.product_id
$subquery = $db->table('orders')->select('SUM(amount)')->where('user_id = users.id');
$builder = $db->table('users');
$builder->select('users.name, (' . $subquery . ') as total_spent');
$query = $builder->get();
জেনারেট করা SQL:
SELECT users.name, (SELECT SUM(amount) FROM orders WHERE user_id = users.id) as total_spent
FROM users
$builder = $db->table('orders');
$builder->select('user_id, COUNT(id) as total_orders');
$builder->groupBy('user_id');
$query = $builder->get();
জেনারেট করা SQL:
SELECT user_id, COUNT(id) as total_orders
FROM orders
GROUP BY user_id
$builder = $db->table('orders');
$builder->select('user_id, COUNT(id) as total_orders');
$builder->groupBy('user_id');
$builder->having('total_orders >', 5);
$query = $builder->get();
জেনারেট করা SQL:
SELECT user_id, COUNT(id) as total_orders
FROM orders
GROUP BY user_id
HAVING total_orders > 5
কখনো কখনো Query Builder ব্যবহার না করে সরাসরি Raw SQL কোড চালাতে হয়।
$query = $db->query("SELECT * FROM users WHERE status = 'active'");
$result = $query->getResult();
CodeIgniter এর Query Builder ব্যবহার করে Complex Query এবং JOIN পরিচালনা সহজ এবং কার্যকর। এর সাহায্যে আপনি ডাটাবেসের বিভিন্ন অপারেশন দ্রুত এবং নিরাপদে সম্পন্ন করতে পারবেন।
Read more